# 已有：一个有序数列，但是不知道升序还是降序
some_ordered_list = [10, 20, 30, 40, 50, 60, 70]

# 向有序列表中插入元素

# 升序：
def ascending_list_insert(ascending_list, val):
    idx = 0         # 使用计数器计算下标
    for i in ascending_list:
        if i >= val:
            break
        idx = idx + 1
    ascending_list.insert(idx, val)


# 降序：
def descending_list_insert(descending_list, val):
    # 使用下表访问数组
    for idx in range(len(descending_list)):
        if descending_list[idx] <= val:
            descending_list.insert(idx, val)
            return
    descending_list.insert(len(descending_list), val)


def insertData(some_list, val):
    # 先判断有序列表是升序还是降序
    if some_list[0] < some_list[-1]:
        ascending_list_insert(some_list, val)
    else:
        descending_list_insert(some_list, val)



# 输入，不断读取，直到输入负数或者 0

while True:
    num = input('请输入一个正整数：')

    try:
        num = int(num)
    except:
        print('输入非法')
    
    if num <= 0: 
        break
    
    insertData(some_ordered_list, num)
    print(some_ordered_list)

# 输入完成后，显示最小值、最大值、平均值。

print('最小值: {}'.format(min(some_ordered_list)))
print('最大值: {}'.format(max(some_ordered_list)))

# 由于列表有序，也可以直接访问首尾的元素

print('均值: {}'.format(sum(some_ordered_list)/len(some_ordered_list)))
